#-*- coding: utf-8 -*-

# # #
# Tworzenie Nowej postaci
# By Necro, Hellboy(ten od śedników)
# # #

import random
import math

#tu są rzeczy. Nie wiem czy da się jakoś mądrzej rozwiązać
CharacterName = "Nameless"
CharacterRace = "Human"

#wypełniamy ankietkę
CharacterName = raw_input("Podaj imie postaci: ")

#kod
choice = True

while choice:
	CharacterRace = raw_input('Podaj rase postaci: ').lower()
	if CharacterRace == "czlowiek":
		choosen = 0
		choice = False # to jest to, co zatrzymuje pyntle
	elif CharacterRace == "elf":
		choosen = 1
		choice = False	
	elif CharacterRace == "krasnolud":
		choosen = 2
		choice = False
	else:
		print u"Chyba źle usłyszałem. Możesz powtórzyć?"

# 0 = ID 1 = NAZWA
races = [
[0, "czlowiek"],
[1, "elf"],
[2, "krasnolud"]
]

CharacterRace = races[choosen]
del(choosen) # po co trzymac w pamieci nieuzywana juz zmienna? xD


#pierwsza partia pierdolenia
print u"Okej, więc nazywasz się "+CharacterName+", "+CharacterRace[1]+" z..."
print u"...Cholera, jak się nazywało miejsce Twojego pochodzenia?"
CharacterPlace = raw_input("")
print u"Właśnie! "+CharacterName+", "+CharacterRace[1]+" z miasta "+CharacterPlace+u". Niech no Ci się przyjrzę..."
raw_input("A niech mnie!")
print u"Myślałem, że bohaterzy mają jakieś szczególne atrybuty... Wyglądasz... typowo: "

#losujemy wygląd
#trochę to zrobiłem uniwersalniej. Hellboy - zróbo z tego klasę w osobnym pliku, będziemy to wykorzystywać dla npców. __PENIS__
#jak ogarne klasy w pythonie i kilka dodatkow do tego co pisze w C++, to jak najbardziej, zrobie podwaliny pod klase Monster, PLayer i NPC
atHEIGHT = [u"nawet imponująego", "niskiego", u"przeciętnego"]
at1 = random.randint(0, len(atHEIGHT)-1)

atBUILD = ["gruby", "garbaty", "przypakowany", "wychudzony", "atletyczny"]
at2 = random.randint(0, len(atBUILD)-1)

atFACE = [u"pociągłą twarz", u"okrągły łeb", "kozi pysk", u"krzywą mordę", u"typową dla was twarz"]
at3 = random.randint(0, len(atFACE)-1)

atHAIR1 = ["jasne", "rude", "ciemne", "czarne", "obrzydliwie brudne"]
at4 = random.randint(0, len(atHAIR1)-1)

atHAIR2 = [u"długie", u"krótkie", "przerzedzone", "zapuszczone"]
at5 = random.randint(0, len(atHAIR2)-1)

atHAIR3 = [u"kręcone", "proste", u"skołtunione", "zniszczone"]
at6 = random.randint(0, len(atHAIR3)-1)

#kolejne pierdolenie
print u"Jesteś "+atHEIGHT[at1]+" wzrostu, jak na "+CharacterRace[1]+u"a i mógłbym rzec, że jesteś nawet troszkę "+atBUILD[at2]+"."
print u"Właściwie, to masz przy tym wszystkim "+atFACE[at3]+" i "+atHAIR1[at4]+", "+atHAIR2[at5]+", "+atHAIR3[at6]+u" włosy. "
if CharacterRace[0] == 1:
    print u"No i co oczywiste, masz długie elfie uszy."
elif CharacterRace[0] == 2:
    print u"No i co oczywiste, masz długą brodę."
else:
    print u"No i co oczywiste, nie masz ani krasnoludzkiej brody, ani elfich uszu!"
raw_input("")

#losujemy statystyki
print u"Stań na tym ustrojstwie, sprawdzimy ileś wart."
raw_input("")

if CharacterRace[0] == 1:
    STR = random.randint(15, 120)
    DEX = random.randint(25, 200)
    CON = random.randint(10, 100)
    INT = random.randint(20, 170)
    WIS = random.randint(40, 200)
elif CharacterRace[0] == 2:
    STR = random.randint(15, 200)
    DEX = random.randint(25, 120)
    CON = random.randint(10, 180)
    INT = random.randint(20, 100)
    WIS = random.randint(40, 120)
else:
    STR = random.randint(25, 150)
    DEX = random.randint(25, 150)
    CON = random.randint(25, 150)
    INT = random.randint(25, 150)
    WIS = random.randint(25, 150)
	
#liczymy HP
health = ((CON*3)+STR)/1.5
health = math.floor(health)
health = int(health)

STR_descr = [u"niemożliwie słaby", u"słaby", u"przeciętnie silny", u"silny", u"bardzo silny(!)"] 
DEX_descr = [u"skończoną kaleką", u"fajtłapą", u"przeciętnie zręczny", u"zręczny", u"bardzo zręczny(!)"]
CON_descr = [u"nieprawdopodobnie cherlawy", u"w kiepskiej formie", u"w przeciętnej kondycji", u"w dobrej formie", u"doskonałej formie(!)"]
INT_descr = [u"kompletnie upośledzony", u"tępy", u"przeciętnie inteligentny", u"bystry", u"cholernie bystry(!)"]
WIS_descr = [u"skończonym kretynem", u"pozbawiony elementarnej wiedzy", u"przeciętnie wykształcony", u"światły", u"kompletnym geniuszem(!)"]

print u"*Starzec wyciąga pergamin z maszyny, poprawia akulary i odsuwa kartkę z dala od twarzy, by w ogóle coś nań dostrzec*"
print u"No, wszystko wskazuje na to, że jesteś "+STR_descr[int(math.floor(STR/40))]+u"... Mam nadzieję, że to nie jest dla ciebie zaskoczenie."
print u"Jesteś także "+DEX_descr[int(math.floor(DEX/40))]+" i "+CON_descr[int(math.floor(CON/40))]+"..."
print u"A co do Twoich zdolności mentalnych, to jesteś "+INT_descr[int(math.floor(INT/40))]+" oraz "+WIS_descr[int(math.floor(WIS/40))]+"."

raw_input("")

#system wybiera podstawowy ekwipunek

#opis areny
print u"*Starzec raz jeszcze lustruje Cię z góry do dołu, kiwa głową i pociąga za tajemniczą dźwignię znajdującą się na ścianie*"
raw_input()
print u"*Olbrzymie, odlane z brazu wrota otworzyły się, a smuga światła kompletnie pozbawiła cię zdolności widzenia.*"
print u"*Zanim jeszcze odzyskałeś sprawność, poczułeś jak ktoś unosi Cię za ramiona i przenosi w inne miejsce.*"
print u"*Znajdujesz się na niewielkiej, drewnianej arenie.*"

#zapisujemy XML do pliku saves/$CharacterName.sav
save = '''<?xml version="1.0"?>
<save>
        <basics charactername="'''+str(CharacterName)+'''" characterrace="'''+str(CharacterRace[0])+'''" characterplace="'''+str(CharacterPlace)+'''" />
        <status health="'''+str(health)+'''" mana="0" exp="0" karma="0">
                <debuff testdebuff="60" />
                <buff testbuff="600" />
        </status>
        <stats str="'''+str(STR)+'''" dex="'''+str(DEX)+'''" con="'''+str(CON)+'''" int="'''+str(INT)+'''" wis="'''+str(WIS)+'''" />
		<look height="'''+str(at1)+'''" build="'''+str(at2)+'''" face="'''+str(at3)+'''" hair1="'''+str(at4)+'''" hair2="'''+str(at5)+'''" hair3="'''+str(at6)+'''" />
        <skills>
        </skills>
        <items>
        </items>
</save>
'''

file = open("saves/"+CharacterName+".sav", 'w')
file.write(save)
file.close()

raw_input("nacisnij enter aby zakonczyc")

